Method and apparatus for interacting with a portable computer system

ABSTRACT

A palmtop computer system that incorporates mechanical buttons that combine the task of turning the palmtop computer system on and starting a particular application program. Furthermore, the same mechanical button can be used to navigate the application program to find the information that is most likely needed by the user. Additionally, external devices can be coupled to the palmtop computer system in a manner that allows the external hardware device to initiate specific application programs that cooperate with the external hardware device.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 09/272,979, entitled “Method and Apparatus for Interacting witha Portable Computer System”, filed on Mar. 19, 1999 now U.S. Pat. No.6,448,988 which is a continuation of U.S. patent application Ser. No.08/790,518 entitled “Method and Apparatus for Interacting with aPortable Computer System”, filed on Jan. 29, 1999 now U.S. Pat. No.5,900,875, the aforementioned priority applications being herebyincorporated by reference.

FIELD OF THE INVENTION

The present invention relates to the field of portable computer systems.Specifically, the present invention discloses a portable computer systemthat can quickly be turned on and access relevant information with aminimal user interaction.

BACKGROUND OF THE INVENTION

Many busy business professionals require a lot of information while theyare traveling. To fill this need, a market for palmtop computer systemshas emerged. Palmtop computer systems are small compact computers thatcan fit in the palm of your hand. Palmtop computer systems are usuallyused to perform personal informational management tasks such as, anaddress book, a daily organizer and a to do list.

Users of palmtop computer systems need to be able to access theinformation stored into the palmtop computer as fast as possible. Forexample, a person talking on a phone may schedule an appointment withthe person on the other end of the phone. Thus, the person would need toaccess the information in his calendar program on the palmtop computersystem as fast as possible such that no interruption of the telephoneconversation would be required.

Existing palmtop computer systems often require a number of steps toobtain the desired information. For example, to obtain information froma calendar date, a person may first need to turn on the palmtop computersystem. Some systems then require a “boot-up” time before the palmtopcomputer system enters an operational state. After the palmtop is on andready, the person must then start the calendar application. Finally, theperson must navigate the calendar application to locate the desireddate. Although, those few steps may seem simple, such steps seem to bean unnecessary nuisance to a person that wants to quickly access theappropriate information. It would therefore be desirable to implement apalmtop computer system that allows the user to very quickly access therequired information.

SUMMARY AND OBJECTS OF THE INVENTION

It is therefore an object of the present invention to implement apalmtop computer system that allows a user to quickly turn on thepalmtop computer system and access the needed information. It is afurther object of the present invention to allow the user to executedspecific programs on the palmtop computer system using external devicescoupled to the palmtop computer system.

These and other objectives are accomplished by the palmtop computersystem of the present invention which incorporates mechanical buttonsthat combine the task of turning the palmtop computer system on andstarting a particular application program. Furthermore, the samemechanical button can be used to navigate the application program tofind the information that is most likely needed by the user.Additionally, external devices can be coupled to the palmtop computersystem in a manner that allows the external hardware device to initiatespecific application programs that cooperate with the external hardwaredevice.

BRIEF DESCRIPTION OF THE DRAWINGS

The objects, features, and advantages of the present invention will beapparent from the following detailed description of the preferredembodiment of the invention with references to the following drawings.

FIG. 1 illustrates a portable computer system with defined applicationbuttons.

FIG. 2 a illustrates a screen display for an addressbook applicationprogram that divides records using multi-function categories.

FIG. 2 b illustrates a screen display for an addressbook applicationprogram that is displaying a pop-up menu with the multi-functioncategories.

FIG. 2 c illustrates a screen display for an addressbook applicationprogram that is displaying a set of records under the “business”multi-function category.

FIG. 3 illustrates a portable computer system and a personal computersystem equipped with a cradle for synchronizing with the portablecomputer system.

FIG. 4 illustrates the rear of a portable computer system with aninterface for communicating with the synchronization cradle of FIG. 3.

FIG. 5 illustrates a portable computer system equipped with a smallmodem for remotely synchronizing with a personal computer system.

DETAILED DESCRIPTION

Methods and apparatus for implementing a palmtop computer system that iswell integrated with a personal computer system is disclosed. In thefollowing description, for purposes of explanation, specificnomenclature is set forth to provide a thorough understanding of thepresent invention. However, it will be apparent to one skilled in theart that these specific details are not required to practice the presentinvention. In other instances, well-known circuits and devices are shownin block diagram form to avoid obscuring the present invention.

A Portable Computer System with One-Touch Application Buttons

FIG. 1 illustrates a one embodiment of a portable computer system 100constructed according to the teachings of the present invention. Most ofthe surface area of the portable computer system 100 consists of ascreen display area 181. The screen display area 181 is used fordisplaying information to the user. The screen display area is coveredwith a touch sensitive digitizer pad that can detect user interactionwith a stylus or finger.

Below the display area 181 is a user input area 183. The user input area183 is used to input text in the Graffiti® writing area 145 and interactwith the application buttons 141 through 144. The user input area 183 iscovered by the digitizer pad that will sense the users finger or stylus.

Below the user input area 183 is a mechanical button input area 185. Inthe embodiment of FIG. 1 there are seven different mechanical buttons onthe front of the portable computer system: a power button, twodirectional scrolling buttons, and four different application buttons.

The first mechanical button is a power button 129. If the portablecomputer system 100 is off, then the power button 129 turns on theportable computer system 100 and brings the portable computer system 100to the state that the portable computer system 100 was in just before itpowered down. Conversely, if the portable computer system is on thenpressing the power button 129 will save the current state of theportable computer system 100 and turn the portable computer system 100off.

A pair of scrolling buttons 131 are used to scroll information in thedisplay area 181 up and down. The scrolling buttons 141 allow a user toview a list of information that does not fit on the display.

There are four mechanical application buttons 121, 123, 125, and 127illustrated in FIG. 1. In the embodiment of FIG. 1, application button121 is used for a calendar application, application button 123 is usedfor an address book application, application button 125 is used for aTo-do list application, and application button 127 is used for a notepad application. The embodiment of FIG. 1 provides just one possible setof applications. Other applications could be used instead of theapplications illustrated in FIG. 1. Furthermore, the application buttonsare programmable such that applications assigned to each applicationbutton may be changed.

When the portable computer system 100 is powered-off, the applicationfunction buttons 121, 123, 125 and 127 turn on the portable computersystem and then begin executing the associated application. For example,if the user presses the addressbook application button 123, the portablecomputer system will turn on and begin executing the address bookapplication.

In the present embodiment, the application buttons operate by generatinga hardware interrupt signal to the processor in the portable computersystem 100. The hardware interrupt signal wakes the processor in theportable computer system 100 from a sleep mode and caused the processorto execute code in a wake-up routine. In the wake-up routine, theprocessor checks a register to determine which application button waspressed. After determining which application button was pressed.

To further convenience the user, each application starts executing byentering a state that has been chosen to best provide the informationthe user may be seeking. The following table lists the currentapplications illustrated in FIG. 1 and the initial state that eachapplication enters when the corresponding application button is pressed:

Application Description of Initial state. Calendar Appointment list forthe current day. Addressbook List of names and phone numbers for mostrecently accessed multi-function category. To-Do To-Do list of mostrecently accessed multi-function category. Memo Pad Current Memo beingedited (if any) else current list of memos.Thus, each application button turns on the portable computer system 100,starts executing the corresponding application, and brings thecorresponding application into an initial state that has been chose toprovide the most useful information. In some applications, the initialstate can be set by the user such that the user can decide what statethe application should enter when the corresponding application buttonhas been pressed.

Multi-function Categories and Application Button Overloading

As stated in the previous section, when the addressbook applicationbutton 123 is pressed, the portable computer system is turned on and theaddressbook application starts executing. FIG. 2A provides an example ofhow the addressbook application may appear on the screen after theaddressbook application button 123 has been pressed. In FIG. 2A there isa list of acquaintances of the user and associated telephone numbers.The user can select a particular acquaintance using a stylus or hisfinger. In FIG. 2A the acquaintance “Allison Barry” has been selected.If the user touches the selected Allison Barry again, a display screencontaining additional information about Allison Barry will be presented.

Referring to the upper right corner of the addressbook screen display inFIG. 2A, there is a multifunction category name 263. In FIG. 2A, themultifunction category that is currently displayed is the “all”category. Each addressbook record is assigned to a particularmultifunction category. By assigning each addressbook record to amultifunction category, certain acquaintances can be grouped together.For example, one multifunction category may be “personal” and thatcategory would include close personal friends of the user. Anothermultifunction category may be “business” and that category would includebusiness acquaintances of the user. The “all” displays all theaddressbook records from all multifunction categories.

Next to the multifunction category name 263 is a multifunction categoryedit indicator 261. The multifunction category edit indicator 261indicates that the user can select a particular multifunction categoryto display by selecting the multifunction category edit indicator 261.For example, FIG. 2B illustrates how the screen would appear after theuser selects the multifunction category edit indicator 261. In FIG. 2B alist of the available multifunction categories is displayed. In theexample of FIG. 2B, the available multifunction categories are “all”categories, “business” acquaintances, “personal” acquaintances and“unfiled” acquaintances. Furthermore, the user can add additionalmultifunction categories or edit the existing multifunction categoriesby selecting the “Edit categories . . . ” list item from the pop-upmenu.

An easier method of switching between the different multifunctioncategories exists. Specifically, the user can select between the variousmultifunction categories in the addressbook by continuing to press theaddressbook application button after the addressbook application isexecuting. For example, referring to the addressbook display of FIG. 2Aif the user again presses the addressbook application button 123, theaddress book application will move on to the multifunction category, thebusiness category, as illustrated in FIG. 2C. By successively pressingthe address book application button 123 the user can scroll through allthe different multifunction categories. Alternatively, the user maycontinuously hold down the addressbook application button 123 and theaddressbook application will slowly scroll through the differentmultifunction categories.

Different applications can perform different actions when theirrespective application button is pressed when the application is alreadyrunning. Thus, each application button is “overloaded” in that thefunction that the key performs depends on the current context. Thefollowing table describes how each application behaves when theassociated application button is pressed when the application is alreadyrunning:

Effect of pressing the Application button when the Applicationapplication is already running. Calendar Scroll through appointment listfor the current day. (Scroll keys move to different days.) AddressbookRotate through the different multifunction categories. To-Do Rotatethrough the different multifunction categories. Memo Pad Rotate throughthe different multifunction categories.

In summary, each application button turns on the portable computersystem 100 and begins executing the associated application if theportable computer system is off. If a different application is runningwhen an application button is pressed, the application associated withthe pressed application button begins executing. However, if theapplication is already up and running and the application button forthat application is pressed then the application can perform a specificfunction such as rotating through different multifunction categories asdescribed in the example of FIGS. 2A and 2C.

Externally Accessible Application Signals

FIG. 3 illustrates a portable computer system 330. The portable computersystem 330 may execute a number of different application programs.However, the most common applications on the portable computer system330 will consist of a suite of Personal Information Management (PIM)applications such as the addressbook application, the calendarapplication, the To-Do list application, and the memo pad applicationpreviously described. Most people that use a portable computer system330, also have a personal computer system that has the same or similarapplications. It would therefore be desirable to synchronize informationbetween the portable computer system 330 and the personal computersystem. This would allow the user to edit the information while usingthe desktop personal computer system at an office and edit the sameinformation when using the portable computer system while traveling.

Referring again to FIG. 3, a desktop personal computer system 310 isalso illustrated. Coupled to the serial port 313 of the desktop personalcomputer system 310 is a communication cradle 320. The communicationcradle 320 is used to provide a serial communication link between theportable computer system 330 and the personal computer system 310.Specifically, the serial communication lines from the serial port 313are extended and terminate at a serial interface connector 327 on thecommunication cradle 320. A matching serial interface connector (notshown) on the rear of the portable computer system 330 connects theportable computer system 330 to the personal computer system 310.

To synchronize the information on the portable computer system 330 withthe information on the personal computer system 310, a user drops theportable computer system 330 into the communication cradle 320 andpresses a synchronization button 325 on the communication cradle 320.The synchronization button 325 causes a synchronization program on theportable computer system 330 to execute. The synchronization program onthe portable computer system 330 wakes up a peer synchronization programon the personal computer system 310. The synchronization program on theportable computer system 330 and the peer synchronization program on thepersonal computer system 310 perform the necessary operations tosynchronize information stored on the two computer systems. Thearchitecture of the synchronization process is described in the U.S.patent application entitled “Extendible Method and Apparatus forSynchronizing Multiple Files On Two Different Computer Systems” withSer. No. 08/542,055, filed on Oct. 13, 1995.

The synchronization button 325 on the communication cradle 320 operatessimilar to the application buttons on the personal computer system 310.Specifically, the synchronization button 325 on the communication cradle320 asserts a hardware interrupt signal to the processor in the personalcomputer system 310. The interrupt routine determines that thesynchronization button 325 was pressed and thus starts executing thesynchronization program on the portable computer system 330. Thus, thesynchronization button 325 uses an externally accessible version of theapplication buttons.

FIG. 4 illustrates the rear panel of a portable computer system 400 foruse in the communication cradle 320. Referring to the bottom of portablecomputer system 400, a set of printed circuit board interface connectors451 though 460 are illustrated. The printed circuit board interfaceconnectors connect with a corresponding interface on the communicationcradle 320. The following table lists the printed circuit boardinterface connectors in one embodiment of the portable computer system400:

Ref. # Description 451 Data Terminal Ready (DTR) [output] 452 Poweroutput [output] 453 Serial Data Input (RXD) [input] 454 Ready To Send(RTS) [output] 455 Serial Data Output (TXD) [output] 456 Clear To Send(CTS) [input] 457 Hardware Interrupt Line [input] 458 General purposedata input [input] 459 Unused 460 Electrical Ground

To assert a hardware interrupt signal to the processor in the portablecomputer system 400, the synchronization button 325 on the communicationcradle 320 only needs to complete an electrical circuit between thepower output connector 452 and the hardware interrupt line 457. Thehardware interrupt line 457 is different from the hardware interruptline used by the application buttons. [Is this true?].

The hardware interrupt line 457 can be used to perform other operationsas well. FIG. 5 illustrates a portable computer system coupled to aclip-on modem 510. The clip-on modem 510 includes a remotesynchronization button 520 for remotely synchronizing with a companionpersonal computer. Since a remote synchronization through the clip-onmodem 510 is very different than a local synchronization through acommunication cradle 320, the remote synchronization button 520 needs toexecute a different synchronization program or execute the samesynchronization program with different input parameters.

To handle the remote synchronization, the remote synchronization button520 can be wired to assert both the hardware interrupt line 457 and theGeneral purpose data input 458. In such an embodiment, the interruptservice routine that handles a hardware interrupt associated with thehardware interrupt line 457 would first check the General purpose datainput 458. If the General purpose data input 458 is not asserted, then astandard synchronization through the communication cradle 320 would beperformed. However, if the General purpose data input 458 is asserted,then a special synchronization routine for handling remotesynchronizations would be performed.

Although the present invention has been described in terms of specificexemplary embodiments, it will be appreciated that various modificationsand alterations might be made by those skilled in the art withoutdeparting from the spirit and scope of the invention as set forth in thefollowing claims.

1. A computer implemented method of operating a handheld computer, thehandheld computer including a plurality of mechanical applicationbuttons, the method comprising: receiving a signal from a firstapplication button in the plurality of mechanical application buttonsbeing actuated; waking a processor in response to the first applicationbutton being actuated; in response to the first application button beingactuated, identifying a first application associated with the firstapplication button prior to the first application button being actuated;then automatically executing the first application, to display aselected state of the first application, wherein displaying the selectedstate of the first application includes automatically displayinguser-inputted data entered through a previous use of the firstapplication on another computer.
 2. The method of claim 1, whereinautomatically executing the first application to display a selectedstate of the first application includes displaying user-inputted dataentered on a second computer prior to synchronizing the second computerwith the portable computer.
 3. The method of claim 1, wherein waking aprocessor includes coincides with switching the portable computer from alow-power state to a high-power state.
 4. The method of claim 1, whereinautomatically executing the first application associated with the firstapplication button includes displaying a selected day by executing acalendar application, wherein displaying the selected day includesautomatically displaying an appointment list created by a user.
 5. Themethod of claim 1, wherein waking a processor includes interrupting theprocessor so that the processor enters an interrupt service routine. 6.The method of claim 1, wherein automatically executing the firstapplication associated with the first application button includesdisplaying selected list by executing a to-do list application, theselected list being a most recently accessed list in a set of lists thatcan be accessed by the to-do application.
 7. The method of claim 1,wherein automatically executing the first application associated withthe first application button includes displaying selected addressrecords by executing an address book application, the selected addressrecords being a set of most recently accessed address records from aplurality of address records that can be accessed by the address bookapplication.
 8. A method for operating a handheld computer, the methodcomprising: configuring the handheld computer to execute a plurality ofapplications; associating a first mechanical button on a housing of thehandheld computer with a first one of the plurality of applications;detecting the first mechanical button being pressed while the handheldcomputer is executing a first application in the plurality ofapplications; in response to detecting the first mechanical button beingpressed; interrupting a processor of the handheld computer in order tomake the handheld computer operational; displaying a selected state ofthe first application, wherein displaying the selected state of thefirst application includes automatically displaying user-inputted datathrough a previous use of the first application on another computer; ifthe first mechanical button is associated with a second application inthe plurality of applications prior to the first mechanical button beingpressed, then executing the second application by displaying a selectedstate of the second application, wherein displaying the selected stateof the second application includes automatically displayinguser-inputted data through a previous use of the first application onanother computer.
 9. The method of claim 8, wherein if the firstmechanical button is associated with the first application prior to thefirst mechanical button being pressed, the method further comprisesexecuting a predetermined function of the first application.
 10. Amethod for operating a handheld computer, the method comprising:configuring the handheld computer to execute a plurality ofapplications; associating each one of a plurality of mechanical buttonson a housing of the handheld computer with one of the plurality ofapplications; detecting a first mechanical button being pressed whilethe handheld computer is executing a first application in the pluralityof applications; and responsive to detecting the first mechanical buttonbeing pressed, interrupting a processor of the handheld computer tocoincide with switching the handheld computer to an operation state; ifthe first mechanical button is associated with a second application,executing the second application; wherein if the first mechanical buttonis associated with the first application, the method further comprisesdisplaying a first multifunction category of the first application. 11.The method of claim 10, further comprising detecting the firstmechanical button being pressed again, then displaying a secondmultifunction category of the first application.
 12. The method of claim10, wherein automatically executing the first application associatedwith the first application button includes displaying a selected memo byexecuting a memo pad application, the selected memo pad being a set ofmost recently accessed memo records from a plurality of memo recordsthat can be accessed by the memo pad application.
 13. A computerimplemented method of operating a handheld computer, the handheldcomputer including a plurality of mechanical application buttons, themethod comprising: receiving a signal from a first application button inthe plurality of mechanical application buttons being pressed;interrupting a processor in response to the fist application buttonbeing pressed so that the handheld computer is operational; in responseto the first application button being pressed, identifying a firstapplication associated with the first application button prior to thefirst application button being pressed; then automatically executing thefirst application to display a selected state of the first application,wherein displaying the selected state of the first application includesautomatically displaying user-inputted data previously entered into asecond computer that previously executed the first application.
 14. Themethod of claim 13, wherein displaying user-inputted data previouslyentered into data used by the first application includes displaying datareceived on the handheld computer through a synchronization process. 15.The method of claim 13, wherein displaying user-inputted data previouslyentered into data used by the first application includes displaying dataentered onto the handheld computer by a user.
 16. The method of claim13, wherein automatically executing the first application associatedwith the first application button includes displaying a selected day byexecuting a calendar application, wherein displaying the selected dayincludes automatically displaying an appointment list created by a user.